package com.aiex.framework.core.base;

import cn.hutool.core.bean.BeanUtil;
import lombok.Data;

import java.util.List;

@Data
public class Page<T> {

    /**
     * 当前页码。
     */
    private long pageNumber = 1;

    /**
     * 每页数据数量。
     */
    private long pageSize = 10;
    /**
     * 表格数据
     */
    private List<T> list;
    /**
     * 数量
     */
    private long total;

    public static <T> Page<T> of(List<T> tableData, long count){
        Page<T> page = new Page<>();
        page.setList(tableData);
        page.setTotal(count);
        return page;
    }

    public static <T> Page<T> of(long pageNumber, long pageSize, List<T> tableData, long count){
        Page<T> page = new Page<>();
        page.setList(tableData);
        page.setTotal(count);
        return page;
    }

    public static <R, T> Page<T> copy(Page<R> page, Class<T> tClass){
        List<T> list = BeanUtil.copyToList(page.getList(), tClass);
        return of(list, page.getTotal());
    }

}
